From d902a45ebeb7cd2077492ee4aef85cbe1f83632a Mon Sep 17 00:00:00 2001 From: "kaf24@scramble.cl.cam.ac.uk" Date: Fri, 13 Feb 2004 09:03:01 +0000 Subject: [PATCH] bitkeeper revision 1.722 (402c92c5m6bew87rlD47Gjf50LsJQw) traps.c: Fix flush_page_update_queue reentrancy bug. --- xenolinux-2.4.24-sparse/arch/xeno/kernel/traps.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/xenolinux-2.4.24-sparse/arch/xeno/kernel/traps.c b/xenolinux-2.4.24-sparse/arch/xeno/kernel/traps.c index cb45e1c278..0b172ff87d 100644 --- a/xenolinux-2.4.24-sparse/arch/xeno/kernel/traps.c +++ b/xenolinux-2.4.24-sparse/arch/xeno/kernel/traps.c @@ -313,12 +313,14 @@ asmlinkage void do_general_protection(struct pt_regs * regs, long error_code) if ( unlikely((error_code & 6) == 4) ) { unsigned long ldt; - flush_page_update_queue(); /* ensure LDTR is up to date */ __asm__ __volatile__ ( "sldt %0" : "=r" (ldt) ); - if ( likely(ldt == 0) ) + if ( ldt == 0 ) { - queue_set_ldt((unsigned long)&default_ldt[0], 5); - flush_page_update_queue(); + mmu_update_t u; + u.ptr = MMU_EXTENDED_COMMAND; + u.ptr |= (unsigned long)&default_ldt[0]; + u.val = MMUEXT_SET_LDT | (5 << MMUEXT_CMD_SHIFT); + HYPERVISOR_mmu_update(&u, 1); return; } } -- 2.30.2